const data = [
    { id: 1, name: 'Root', parentId: null },
    { id: 2, name: 'Child 1', parentId: 1 },
    { id: 3, name: 'Child 2', parentId: 1 },
    { id: 4, name: 'Grandchild 1', parentId: 2 },
    { id: 5, name: 'Grandchild 2', parentId: 2 },
  ]

  const treeData = [
    {
        "id": 1,
        "name": "Root",
        "parentId": null,
        "children": [
            {
                "id": 2,
                "name": "Child 1",
                "parentId": 1,
                "children": [
                    {
                        "id": 4,
                        "name": "Grandchild 1",
                        "parentId": 2
                    },
                    {
                        "id": 5,
                        "name": "Grandchild 2",
                        "parentId": 2
                    }
                ]
            },
            {
                "id": 3,
                "name": "Child 2",
                "parentId": 1
            }
        ]
    }
] 



//   function buildTree(flatData, parentId = null) {
//     return flatData.filter(node => node.parentId === parentId).map(node => {
//       return { ...node, children: buildTree(flatData, node.id) };
//     });
//   }
  


//  let tree = buildTree(data,null)


// let tree = []
// for(let i=0;i<data.length;i++){
//     let root = data[i];
//     for(let j=0;j<data.length;j++){ 
//         if(data[j].parentId==root.id) {
//             if(!root.children) root.children = [data[j]]
//             else root.children.push(data[j])
            
//         }

//     }
//     if(!root.parentId) {
//         tree.push(data[i])
//     }

// }

// let temp = []
// function flatData(treedata) {
// // console.log(treedata)
//     treedata.forEach(item=> {
//          if(item.children) {
//             flatData(item.children)
//             let copyItem  = {...item}
//             delete copyItem['children']
//             temp.push(copyItem)
//          } else {
//             temp.push(item)
//          }
//     })
// }
// flatData(treeData)


 let temp  = flatData2(treeData)



console.log(temp)






  